package cn.iocoder.yudao.module.promotion.controller.admin.prizedraw.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 抽奖设置商品批次 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PrizeDrawSettingBatchRespVO {

    @Schema(description = "抽奖设置商品批次ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9971")
    @ExcelProperty("抽奖设置商品批次ID")
    private Long prizeDrawSettingBatchId;

    @Schema(description = "批次名称", example = "王五")
    @ExcelProperty("批次名称")
    private String batchName;

    @Schema(description = "可获得抽奖次数时间开始")
    @ExcelProperty("可获得抽奖次数时间开始")
    private LocalDateTime batchBegin;

    @Schema(description = "可获得抽奖次数时间结束")
    @ExcelProperty("可获得抽奖次数时间结束")
    private LocalDateTime batchEnd;

    @Schema(description = "下单获得次数类型（1：同一订单，2：同一用户，3：同一商品）", example = "2")
    @ExcelProperty("下单获得次数类型（1：同一订单，2：同一用户，3：同一商品）")
    private Integer orderType;

    @Schema(description = "启停状态")
    @ExcelProperty("启停状态")
    private Integer updown;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 商品数量
     */
    @Schema(description = "商品数量")
    private Integer prodNums;


    /**
     * 批次状态（1：进行中，2：待开始，3：已停用，4：已结束）
     */
    @Schema(description = "批次状态（1：进行中，2：待开始，3：已停用，4：已结束）")
    private Integer status;


    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private Long updater;

    /**
     * 更新人名称
     */
    @Schema(description = "更新人名称")
    private String updateByName;

    /**
     * 商品IDS
     */
    @Schema(description = "商品IDS")
    private List<Long> productIds;

}